﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entidades
{
    public class EntidadProyecto : EntidadBase
    {
        private String nombre;
        private String descripcion;
        private String sitioWeb;
        private String mail;
        private DateTime? fechaInicio;
        private DateTime? fechaFin;
        private int tiempoEstimadoMeses;
        private EntidadInvestigador investigadorLider;
        private List<EntidadPerfil> perfiles;
        
        public EntidadProyecto()
        {
            investigadorLider = new EntidadInvestigador();
        }
        public EntidadProyecto(String nombre, String descripcion, String sitioWeb, String mail, DateTime? fechaInicio, 
                               DateTime? fechaFin, int tiempoEstimadoMeses, EntidadInvestigador investigadorLider, List<EntidadPerfil> perfiles)
        {
            this.nombre = nombre;
            this.descripcion = descripcion;
            this.sitioWeb = sitioWeb;
            this.mail = mail;
            this.fechaInicio = fechaInicio;
            this.fechaFin = fechaFin;
            this.tiempoEstimadoMeses = tiempoEstimadoMeses;
            this.investigadorLider = investigadorLider;
            this.perfiles = perfiles;
        }


        public override bool esEntidadValida()
        {

            if (String.IsNullOrEmpty(this.Nombre) ||
                String.IsNullOrEmpty(this.descripcion) ||
                String.IsNullOrEmpty(this.Mail) ||
                this.FechaInicio.Equals(null) ||
                this.InvestigadorLider.Equals(null))
            {
                return false;
            }

            return true;
        }

        public override object[] obtainArray()
        {
            return new object[] { this.Id, this.Nombre, this.Descripcion, this.SitioWeb, this.Mail, this.FechaInicio,
            this.FechaFin, this.TiempoEstimadoMeses, this.InvestigadorLider.Id };
        }

        #region getset

        public String Nombre 
        {
            get { return nombre.Trim(); }
            set { nombre = value; }
        }

        public String Descripcion 
        {
            get { return descripcion.Trim(); }
            set { descripcion = value; }
        }

        public String SitioWeb 
        {
            get { return sitioWeb.Trim(); }
            set { sitioWeb = value; }
        }

        public String Mail 
        {
            get { return mail.Trim(); }
            set { mail = value; }
        }

        public DateTime? FechaInicio 
        {
            get { return fechaInicio; }
            set { fechaInicio = value; }
        }

        public DateTime? FechaFin 
        {
            get { return fechaFin; }
            set { fechaFin = value; }
        }

        public int TiempoEstimadoMeses 
        {
            get { return tiempoEstimadoMeses; }
            set { tiempoEstimadoMeses = value; }
        }

        public EntidadInvestigador InvestigadorLider 
        {
            get { return investigadorLider; }
            set { investigadorLider = value; }
        }

        public List<EntidadPerfil> Perfiles 
        {
            get { return perfiles; }
            set { perfiles = value; }
        }

        #endregion

    }
}
